// 数据类型篇

void main() {
  // var str = 'this is str';
  // var num = 1234;

  // print(str);
  // print(num);

  // 字符串
  String str = 'ni hao dart';
  print(str);

  // 多行字符串
  String rowstr = '''this is str1
  this is str2
  this. 3
  ''';

  print(rowstr);

  // 字符串拼接
  print("$str $rowstr");
  print(str + rowstr);

  // 数字类型
  int mynum = 123456;
  print(mynum);

  // List 类型 及 指定数据类型  及增加数据
  var list1 = [];
  var list2 = <String>[];
  // var list3 = new List(); //旧版本可以使用
  var list4 = List.filled(4, ''); //创建一个固定长度的集合  不可修改长度
  var list5 = List<String>.filled(4, ''); //创建一个固定长度的集合  不可修改长度

  list1.add(123);
  print(list1 + list2 + list4 + list5);

  // Maps类型 方式

  // 第一种
  var person = {"name": "张三", "age": 20};

  print(person);
  print(person["name"]); //打印属性

  // 第二种
  var p = new Map();
  p["price"] = 123;

  // 判断数据类型
  if (person is Map) {
    print("person 是 Map 类型");
  } else {
    print("person 不是 Map 类型");
  }
}

// dart 里面有类型校验

/*
  dart 变量命名规则

    1，变量名称必须由数字、字母、下划线、和 $ 组成
    2，注意： 标识符开头不能是数字
    3，标识符不能是保留字和关键字
    4，变量名是区分大小写的
    5，标识符（变量名称） 一定要见名思意   方法名称建议用动词

 */

/*
  dart 常量：  final 和 const 修饰符

   cosnt 值不变  一开始就得赋值
   final 可以开始不复制 只能赋一次值 

 */

/*
  dart 数据类型 常用
      Number （数值）
        int 
        double
      String （字符串）
        String
      Boolean （布尔值）
        bool
      List （数组）
        在 dart 中，数组是列表对象，所以大多数人只称他们为列表
      Map （字典）
        通常来说，Map 是一个键值对相关的对象。键和值可以使任何类型的对象。
 */
